突發發現沒有講要怎麼開放S3的物件讓其他人存取。
這邊先用最簡單的做法,
IAM(AWS的權限管理)就先跳過不談。
先來看看我們的物件能不能被其他人讀取吧!
進到物件裡面後,點選屬性,可以看到物件url。
複製起來,並開啟一個無痕視窗(或是換別的瀏覽器)貼上網址,可以看到Access Denied,
表示這個物件並不開放其他人存取。
我們接著就是要讓他能夠被公開存取。
在S3的規則裡,S3 Bucket與物件本身都必須設定為公開的物件,才能夠被其他人讀取。
首先我們先來將S3 Bucket設定為公開物件。
先進到S3資源頁面,並進入S3 Bucket的頁面中,
並點選許可內的編輯封鎖公有存取權。
取消"封鎖所有公開存取權"並儲存變更
前兩個選項是透過ACL來進行封鎖公開存取,後兩個選項則是透過IAM的Policy權限進行封鎖公開存取。
其中選項一、三中的"新的"表示等現在儲存變更後上傳的物件,才會有效果。
選項二、四則是對所有物件都有效。
依照指示確認。
如此一來便解除Bucket層級的封鎖了。
但此時我們還沒有辦法對物件的公開權限進行設定,
會需要再Bucket頁面的許可中找到"物件擁有權"進行編輯
選擇"ACL 已啟用",並勾選"我確認會還原 ACL",
再儲存變更。
接著我們就可以去物件編輯了,
進入物件之後,點擊許可,並編輯
勾選"每個人 (公有存取)"的讀取物件,
確認"我了解這些變更對此物件的影響。"
後儲存。
回到物件頁面後,再次複製物件URL,去無痕視窗貼上,
就可以成功看到S3的物件出現嘍~
這只是最初階的讓所有人都能讀取S3的物件,
但實務上還是必須依據業務行為決定各個物件開放的程度,
這部分則會仰賴IAM權限操作了。